Spring Boot快速搭建Web应用
Spring Boot是Spring家族一个新兴的成员,它能用于快速构建基于Spring的独立的生产级的应用程序。我们可以将它与Spring平台的其他项目以及第三方库自由组合。大多数基于Spring Boot的应用只需要非常少量的Spring配置。
Spring Boot的安装
与其他Java库类似,Spring Boot也是打包成jar的形式,所以可以在应用中直接将spring-boot-*.jar引入到classpath中。可以像开发其他Java程序那样开发Spring Boot程序。
但是在现代的企业级Java开发中,一般会使用专门的构建工具来管理应用的整个生命周期,例如Maven和Gradle。
当使用Maven时,只需要在pom.xml中配置好相关依赖,就可以在构建过程中自动引用Spring Boot的相关jar。
用Spring Boot开发web应用
学习任何新技术,都是从开发Hello world级别的程序开始的。用Spring Boot结合Maven开发Hello world级别的Web应用可谓易如反掌。
创建pom.xml文件
在磁盘合适的位置新建一个项目文件夹,比如SpringBootTest。从终端进入该文件夹,创建一个pom.xml文件,输入如下内容并保存。
|
|
可以看到引入了spring-boot-starter-parent和spring-boot-starter-web两个starter。Spring Boot是用于简化Spring应用开发的,spring-boot-starter-parent的作用是让maven自动引入默认的一些基础依赖,spring-boot-starter-web则会让maven自动引入web应用需要的依赖。试想一下如果我们不使用Spring Boot,而是手工用Spring,Spring MVC来开发web应用,那需要配置应用上下文,Servlet上下文等,在maven中也要手工将相关依赖都引入进来。配置量会成倍增加。而用Spring Boot则非常轻松,会将配置最少化。
有了这个pom文件,就可以用maven来构建程序了,可以用mvn package来测试,会看到maven会下载很多依赖,打印出如下信息,就证明能正常构建程序。
Building myproject 0.0.1-SNAPSHOT
Build Success
同时,项目文件夹下出现了target文件夹,该文件夹就是构建出来的可执行文件。
可以执行maven dependency:tree命令来打印出项目依赖的树形表示。
编写代码
使用Maven管理应用必须使文件夹结构符合maven的约定。所以在SpringBootTest文件夹下新建如下目录结构:
src/main/java
进入该文件夹,创建文件Example.java,输入如下内容:
|
|
@RestController注解标志这个类是一个web Controller,并且是REST的访问方式。
@RequestMapping提供了“路由”信息。它告诉Spring任何HTTP请求,如果路径符合“/”就会被路由到home方法。因为是用Rest方式访问的Controller,所以直接返回Hello World!字符串,而不是重定向到一个view。
@EnableAutoConfiguration告诉Spring Boot开发者希望如何配置Spring,依据pom.xml中添加的依赖。因为spring-boot-starter-web依赖会自动添加Tomcat和Spring MVC,自动配置组件就知道开发者在开发一个web应用程序,并据此设置Spring。
main方法
这里的main方法就是Java程序中标准的main方法。但该方法代理执行了Spirng Boot的SpringApplication类的run方法,从而启动了Spring去自动配置Tomcat。此处需要将Example.class作为参数传给run方法,告诉SpringApplication它是主要的Spring组件。
运行程序
万事俱备只欠东风。用终端进入Spring进入到SpringBootTest(必须是pom.xml所在文件夹),输入如下命令。
mvn spring-boot:run
会看到输出如下内容:
|
|
打开浏览器,输入localhost:8080,会看到如下输出
Hello World!
总结
从上文可以看出,Spring Boot可以在Spring框架的基础上快速搭建应用,例如Web应用。它可以有效减少配置量,而且可以使用内嵌的Web容器,可以高效地开发和测试程序。